{
 "cells": [
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-09T02:52:38.949585Z",
     "start_time": "2025-08-09T02:52:38.919951Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "file_path = \"IMDB-Movie-Data.csv\"\n",
    "df = pd.read_csv(file_path)"
   ],
   "id": "initial_id",
   "outputs": [],
   "execution_count": 6
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-09T02:52:54.361742Z",
     "start_time": "2025-08-09T02:52:54.348663Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 查看数据信息\n",
    "print(df.info())\n",
    "print(\"-\" * 50)\n",
    "print(df.head(1))"
   ],
   "id": "aa6061b9cfe6710c",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1000 entries, 0 to 999\n",
      "Data columns (total 12 columns):\n",
      " #   Column              Non-Null Count  Dtype  \n",
      "---  ------              --------------  -----  \n",
      " 0   Rank                1000 non-null   int64  \n",
      " 1   Title               1000 non-null   object \n",
      " 2   Genre               1000 non-null   object \n",
      " 3   Description         1000 non-null   object \n",
      " 4   Director            1000 non-null   object \n",
      " 5   Actors              1000 non-null   object \n",
      " 6   Year                1000 non-null   int64  \n",
      " 7   Runtime (Minutes)   1000 non-null   int64  \n",
      " 8   Rating              1000 non-null   float64\n",
      " 9   Votes               1000 non-null   int64  \n",
      " 10  Revenue (Millions)  872 non-null    float64\n",
      " 11  Metascore           936 non-null    float64\n",
      "dtypes: float64(3), int64(4), object(5)\n",
      "memory usage: 93.9+ KB\n",
      "None\n",
      "--------------------------------------------------\n",
      "   Rank                    Title                    Genre  \\\n",
      "0     1  Guardians of the Galaxy  Action,Adventure,Sci-Fi   \n",
      "\n",
      "                                         Description    Director  \\\n",
      "0  A group of intergalactic criminals are forced ...  James Gunn   \n",
      "\n",
      "                                              Actors  Year  Runtime (Minutes)  \\\n",
      "0  Chris Pratt, Vin Diesel, Bradley Cooper, Zoe S...  2014                121   \n",
      "\n",
      "   Rating   Votes  Revenue (Millions)  Metascore  \n",
      "0     8.1  757074              333.13       76.0  \n"
     ]
    }
   ],
   "execution_count": 8
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-09T02:53:05.839936Z",
     "start_time": "2025-08-09T02:53:05.832923Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 获取平均评分\n",
    "print(df[\"Rating\"].mean())"
   ],
   "id": "44331dc2229e3880",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6.723199999999999\n"
     ]
    }
   ],
   "execution_count": 9
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-09T02:53:07.015742Z",
     "start_time": "2025-08-09T02:53:07.008768Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 导演的人数\n",
    "print(len(set(df[\"Director\"].tolist())))\n",
    "print(len(df[\"Director\"].unique()))"
   ],
   "id": "316a24a5f53c0f36",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "644\n",
      "644\n"
     ]
    }
   ],
   "execution_count": 10
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-09T02:53:08.886541Z",
     "start_time": "2025-08-09T02:53:08.873712Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 获取演员的人数\n",
    "temp_actors_list = df[\"Actors\"].str.split(\", \").tolist()    # 取出df[\"Actors\"]列的数据(series)，通过str.split转换为series(每一行都是一个列表),并转为二维列表\n",
    "actors_list = [i for j in temp_actors_list for i in j]  # 将二维列表转为一维列表\n",
    "actors_num = len(set(actors_list))\n",
    "print(actors_num)"
   ],
   "id": "6822a8c754622cdd",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2015\n"
     ]
    }
   ],
   "execution_count": 11
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-09T02:53:11.259257Z",
     "start_time": "2025-08-09T02:53:10.706617Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# rating.runtime分布情况(直方图)\n",
    "runtime_data = df[\"Runtime (Minutes)\"].values   # 取出df[\"Runtime (Minutes)\"]列的数据(ndarray)\n",
    "\n",
    "max_runtime = runtime_data.max()\n",
    "min_runtime = runtime_data.min()\n",
    "print(max_runtime, min_runtime)\n",
    "\n",
    "# 计算组数\n",
    "print(max_runtime - min_runtime)\n",
    "print(\"-\" * 50)\n",
    "num_bin = (max_runtime - min_runtime) // 5\n",
    "\n",
    "plt.figure(figsize=(20, 8), dpi=80)\n",
    "plt.hist(runtime_data, num_bin)\n",
    "plt.grid(alpha=0.5)\n",
    "\n",
    "plt.xticks(range(min_runtime, max_runtime + 1, 5))  # 设置x轴刻度\n",
    "\n",
    "plt.show()"
   ],
   "id": "31dabad3c23d2269",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "191 66\n",
      "125\n",
      "--------------------------------------------------\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 12
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-09T03:02:20.126950Z",
     "start_time": "2025-08-09T03:02:19.812335Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 电影评分的分布情况\n",
    "# 获取平均评分\n",
    "print(df[\"Rating\"].mean())\n",
    "\n",
    "rating_data = df[\"Rating\"].values\n",
    "print(type(rating_data))\n",
    "max_rating = rating_data.max()\n",
    "min_rating = rating_data.min()\n",
    "print(max_rating, min_rating)\n",
    "print(\"-\" * 50)\n",
    "print(max_rating - min_rating)\n",
    "num_bin = (max_rating - min_rating) // 0.5\n",
    "print(num_bin)\n",
    "print(\"-\" * 50)\n",
    "plt.figure(figsize=(20, 8), dpi=80)\n",
    "plt.hist(rating_data, int(num_bin))\n",
    "plt.grid(alpha=0.5)\n",
    "# 设置x轴刻度(对齐一端)\n",
    "_x = [min_rating+0.1]\n",
    "i = min_rating+0.1\n",
    "while i < max_rating + 0.5:\n",
    "    i = i + 0.5\n",
    "    _x.append(i)\n",
    "plt.xticks(_x)\n",
    "\n",
    "plt.show()"
   ],
   "id": "38acd84b22759d70",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6.723199999999999\n",
      "<class 'numpy.ndarray'>\n",
      "9.0 1.9\n",
      "--------------------------------------------------\n",
      "7.1\n",
      "14.0\n",
      "--------------------------------------------------\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ0AAAIOCAYAAAAStyu5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAAxOAAAMTgF/d4wjAAAjm0lEQVR4nO3dfWxddf3A8U+1OCU6FHRS03V1dK2OsXXTkokCE6MYnyBM49McDeDmAzGkmjATjIkPE6M2UYwyE5zidBnZphLmA0Kcw4iGCUMlOte50iJ3jiFzSAA3en5/8PPKx7bb7dna28rrlZDs3nPu+uWTL+dub057G4qiKAIAAAAA4P89o94LAAAAAAAmF9EQAAAAAEhEQwAAAAAgEQ0BAAAAgEQ0BAAAAAAS0RAAAAAASBrrvYCRTJs2LV70ohfVexmT0hNPPBHPfOYz672MKcfcyjG3csytHHMrx9zGzszKMbdyzK0ccyvH3Moxt3LMrRxzK8fcynnggQfi8ccfL/36SRkNX/SiF8V9991X72VMSn19fdHW1lbvZUw55laOuZVjbuWYWznmNnZmVo65lWNu5ZhbOeZWjrmVY27lmFs55lZOc3PzMb3etycDAAAAAIloCAAAAAAkoiEAAAAAkIiGAAAAAEAiGgIAAAAAiWgIAAAAACSiIQAAAACQiIYAAAAAQCIaAgAAAACJaAgAAAAAJKIhAAAAAJCIhgAAAABAIhoCAAAAAIloCAAAAAAkoiEAAAAAkIiGAAAAAEAiGgIAAAAAiWgIAAAAACSiIQAAAACQiIYAAAAAQCIaAgAAAACJaAgAAAAAJI31XgAAAABj17pqS3q8pGkotlZ21mk1U0v/1W+u9xIAJj13GgIAAAAAiWgIAAAAACSiIQAAAACQiIYAAAAAQCIaAgAAAACJaAgAAAAAJKIhAAAAAJCIhgAAAABAIhoCAAAAAIloCAAAAAAkoiEAAAAAkIiGAAAAAEAiGgIAAAAAiWgIAAAAACSiIQAAAACQiIYAAAAAQCIaAgAAAACJaAgAAAAAJKIhAAAAAJCIhgAAAABAIhoCAAAAAIloCAAAAAAkoiEAAAAAkIiGAAAAAEAiGgIAAAAAiWgIAAAAACSiIQAAAACQiIYAAAAAQFJTNHzsscfiwgsvjPb29liwYEG8/vWvj76+voiI2LdvX7zxjW+MOXPmxLx582Lbtm3V1x3pGAAAAAAwOdV8p+GKFSti586dcffdd8cFF1wQl112WURErFq1KhYvXhy7du2KtWvXxnve8544dOjQUY8BAAAAAJNTTdHw2c9+drzpTW+KhoaGiIhYvHhx9Pf3R0TEDTfcEB/4wAciIqKrqyte8pKXxC9+8YujHgMAAAAAJqdSP9Pwy1/+clxwwQXx4IMPxqFDh+LUU0+tHmttbY2BgYEjHgMAAAAAJq/Gsb5g9erV0dfXF7feems8+uijx2URvb290dvbW3188ODB6s9MJNu/f3+9lzAlmVs55laOuZVjbuWY29iZWTnmVo65lWNutVnSNJQet00vImJo5JNJnvr3TfutHHMrx9zKMbf6GFM0/OIXvxibN2+OW265JU488cQ48cQTo7GxMfbu3Vu9o7C/vz9aWlrilFNOGfXYf+vp6Ymenp7q4+bm5mhrazuWf6//aWZTjrmVY27lmFs55laOuY2dmZVjbuWYWznmdnRbKzv/65mh2Fop9c1kTzvf+q/9Zb+VY27lmFs55jbxan5H6e3tjfXr18fPfvazeP7zn199/h3veEdce+21ERFxxx13xF//+tc499xzj3oMAAAAAJicarrT8L777ouPfvSjMXv27Hjta18bERHTpk2L3/zmN/H5z38+3ve+98WcOXPiWc96Vqxbty5OOOGEiIgjHgMAAAAAJqeaomFzc3MURTHisRe/+MVx8803j/kYAABA66otw55b0jQ0wrfeAgATyQ+8AAAAAAAS0RAAAAAASERDAAAAACARDQEAAACARDQEAAAAABLREAAAAABIREMAAAAAIBENAQAAAIBENAQAAAAAEtEQAAAAAEhEQwAAAAAgEQ0BAAAAgEQ0BAAAAAAS0RAAAAAASERDAAAAACARDQEAAACARDQEAAAAABLREAAAAABIREMAAAAAIBENAQAAAIBENAQAAAAAEtEQAAAAAEhEQwAAAAAgEQ0BAAAAgEQ0BAAAAAAS0RAAAAAASERDAAAAACARDQEAAACARDQEAAAAABLREAAAAABIREMAAAAAIBENAQAAAIBENAQAAAAAEtEQAAAAAEhEQwAAAAAgEQ0BAAAAgEQ0BAAAAAAS0RAAAAAASERDAAAAACARDQEAAACARDQEAAAAABLREAAAAABIREMAAAAAIBENAQAAAIBENAQAAAAAEtEQAAAA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KhYvXlx8//vfH3bctW1kR5uba9tws2bNKu66664jnuPaNlwtc3NtG+6KK64oLr/88uqfQyqVyrBz7Lfhapmb/XZkX/jCF4q3vOUtw573fnpko83N+2k2NDRUvOAFLyjuvvvuoiienM+0adOKgwcPpvPst6zWudlv2d///vfi5JNPLv7whz8URVEU27ZtK04//fRh59lvWa1zK7vf3Gk4yTz72c+ON73pTdHQ0BAREYsXL47+/v5h5/34xz+OhQsXxste9rKIiPjQhz4U69evn8ilTiq1zo3hnv/851d//Y9//KM6w6fauHFjvO1tb4tTTz01Ghoa4gMf+MDTer9F1DY3sqGhobjsssvimmuuiWnTpo14jmvbcLXMjXJc2zgeHnnkkbjuuuvis5/9bPW94NRTTx12nv2W1To3juy6666LSy+9dNjz3k+PbLS5MVxDQ0McOHAgIiIOHjwYp5xyyrA/j9hvw9UyN7Ldu3fHKaecEqeffnpERJx99tkxMDAQd955ZzrPfstqnVtZouEk9+UvfzkuuOCCYc8PDAzErFmzqo9bW1ujUqnE4cOHJ3J5k9Zoc4t48g+pXV1dsWjRovjUpz4VTzzxxASvbvJZvnx5zJw5Mz7xiU/Ed77znWHHR9pvAwMDE7nESeloc4t48iK+aNGi6Orqiq997WsTvMLJpbe3N1796lfHK17xilHPcW0brpa5Rbi2jWT58uVxxhlnxKWXXhoPPPDAsOOubSM72twiXNueavfu3XHyySfH6tWr45WvfGWcffbZceuttw47z37Lap3bv8+134b71a9+FQ899FC85S1vGXbM++nojjS3CO+nT9XQ0BAbNmyIiy66KGbNmhWvec1r4tvf/nY861nPSufZb1mtc4uw355qzpw58eCDD8avfvWriIi48cYb4+GHHx52M5D9ltU6t4hy+000nMRWr14dfX198bnPfa7eS5lSjjS3pqam+Otf/xp33HFH3HLLLXHbbbfFl770pTqscnK5/vrrY3BwMD7zmc/ElVdeWe/lTBlHm9uiRYvivvvuizvvvDO+//3vx7XXXhs33HBDHVZaf3/4wx9i06ZNcdVVV9V7KVNKrXNzbRtu27Zt8bvf/S7uvPPOeOELXxgXX3xxvZc0JdQyN9e27PDhw3HvvffG3LlzY/v27fGVr3wl3vnOd8bf/va3ei9tUqt1bvbb6K677rpYvnx5NDY21nspU8qR5ub9NDt8+HB85jOfic2bN8e9994bt956a7zvfe+L/fv313tpk1qtc7PfspNOOik2btwYH//4x+MVr3hF3HzzzTF37lzXuKOodW5l95toOEl98YtfjM2bN8ePf/zjOPHEE4cdb2lpiXvvvbf6uL+/P5qamp72/0EdbW7Tpk2LGTNmRETEySefHJdcckncdtttE73MSeviiy+On//85/Hggw+m50faby0tLRO9vElrtLlNnz49TjrppIiIaG5ujne/+91P2/122223RX9/f8yZMydaW1vj17/+daxYsSK+/vWvp/Nc27Ja5+baNty/r1EnnHBCXHHFFSPOw7VtuFrm5tqWtbS0xDOe8Yx473vfGxERCxcujJe+9KXx+9//fth59tt/1Do3+21k//znP+OGG26ISy65ZMTj3k9HdrS5eT/NduzYEffff3+cc845ERHR1dUVzc3Nwz4A0H7Lap2b/Tbca1/72vjFL34Rv/3tb+NLX/pS3H///TF37tx0jv02XC1zK7vfRMNJqLe3N9avXx8/+9nP0s9Ne6o3vvGNceedd8af/vSniIj42te+Fu9617smcJWTTy1z27dvX/WTCh9//PHYvHlzLFy4cAJXObkcOHAg7r///urjH/zgB3HKKafEySefnM5bunRp3HjjjbF3794oiiKuvfbap/V+q3VulUolhoaGIiLi4Ycfjptuuulpu98++MEPRqVSif7+/ujv74/FixfHN77xjfjgBz+YznNty2qdm2tb9sgjj1R/jlBExPr160ech2tbVuvcXNuyF77whfG6170ufvrTn0ZExJ49e2LPnj3x8pe/PJ1nv2W1zs1+G9mGDRtiwYIF1Z/p9d+8n47saHPzfprNnDkzKpVK/PGPf4yIiL6+vti9e3d0dHSk8+y3rNa52W/DVSqV6q8//elPx3nnnRdtbW3pHPttuFrmVnq/HdPHtHDcDQ4OFhFRzJ49u1iwYEGxYMGC4swzzyyKoig+8YlPFF//+ter5/7whz8sOjo6itNOO6244IILigMHDtRr2XVX69w2bdpUnH766cX8+fOLuXPnFpdffnnx2GOP1XPpddXf3190dXUV8+bNK+bPn1+87nWvq35q5qWXXlr88Ic/rJ77jW98o5g9e3Yxe/bs4pJLLin+9a9/1WnV9Vfr3K655ppi7ty51f32yU9+svoJkU935557bvVTgF3bajfa3Fzbst27dxednZ3FGWecUcybN69429veVuzZs6coCte2I6l1bq5tw+3evbtYsmRJ9X1h48aNRVHYb0dTy9zst5G96lWvKr75zW+m57yfHt3R5ub9dLjvfe971f9G582bV3z3u98tisJ+O5pa5ma/DXfZZZdV99GyZcuKhx56qCgK++1oaplb2f3WUBRFcRwDJwAAAAAwxfn2ZAAAAAAgEQ0BAAAAgEQ0BAAAAAAS0RAAAAAASERDAAAAACARDQEAAACARDQEAAAAABLREAAAAABI/g8jhRoucVvLFAAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 14
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-09T03:19:45.996131Z",
     "start_time": "2025-08-09T03:19:43.452693Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 预测电影题材\n",
    "temp_list = df[\"Genre\"].str.split(\", \").tolist()\n",
    "genre_list = list(set([i for j in temp_list for i in j]))\n",
    "print(len(genre_list))\n",
    "zeros_df = pd.DataFrame(np.zeros((df.shape[0], len(genre_list))), columns=genre_list)\n",
    "print(zeros_df)\n",
    "print(\"-\" * 100)\n",
    "\n",
    "# 给每个电影出现的类型的位置赋值1\n",
    "for i in range(df.shape[0]):\n",
    "    zeros_df.loc[i, temp_list[i]] = 1\n",
    "\n",
    "# 统计每个类型出现的次数\n",
    "genre_count = zeros_df.sum(axis=0)\n",
    "print(genre_count)\n",
    "\n",
    "# 排序并画图\n",
    "genre_count = genre_count.sort_values()\n",
    "_x = genre_count.index\n",
    "_y = genre_count.values\n",
    "plt.figure(figsize=(20, 8), dpi=80)\n",
    "plt.bar(range(len(_x)), _y, width=0.4, color=\"orange\")\n",
    "plt.xticks(range(len(_x)), _x)\n",
    "plt.show()"
   ],
   "id": "18ed40e91362e90",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "207\n",
      "     Animation,Action,Comedy  Animation,Drama,Fantasy  \\\n",
      "0                        0.0                      0.0   \n",
      "1                        0.0                      0.0   \n",
      "2                        0.0                      0.0   \n",
      "3                        0.0                      0.0   \n",
      "4                        0.0                      0.0   \n",
      "..                       ...                      ...   \n",
      "995                      0.0                      0.0   \n",
      "996                      0.0                      0.0   \n",
      "997                      0.0                      0.0   \n",
      "998                      0.0                      0.0   \n",
      "999                      0.0                      0.0   \n",
      "\n",
      "     Action,Fantasy,Thriller  Biography,Drama,Sport  Action,Thriller  \\\n",
      "0                        0.0                    0.0              0.0   \n",
      "1                        0.0                    0.0              0.0   \n",
      "2                        0.0                    0.0              0.0   \n",
      "3                        0.0                    0.0              0.0   \n",
      "4                        0.0                    0.0              0.0   \n",
      "..                       ...                    ...              ...   \n",
      "995                      0.0                    0.0              0.0   \n",
      "996                      0.0                    0.0              0.0   \n",
      "997                      0.0                    0.0              0.0   \n",
      "998                      0.0                    0.0              0.0   \n",
      "999                      0.0                    0.0              0.0   \n",
      "\n",
      "     Adventure,Comedy,Horror  Biography,Comedy,Crime  Comedy,Horror,Thriller  \\\n",
      "0                        0.0                     0.0                     0.0   \n",
      "1                        0.0                     0.0                     0.0   \n",
      "2                        0.0                     0.0                     0.0   \n",
      "3                        0.0                     0.0                     0.0   \n",
      "4                        0.0                     0.0                     0.0   \n",
      "..                       ...                     ...                     ...   \n",
      "995                      0.0                     0.0                     0.0   \n",
      "996                      0.0                     0.0                     0.0   \n",
      "997                      0.0                     0.0                     0.0   \n",
      "998                      0.0                     0.0                     0.0   \n",
      "999                      0.0                     0.0                     0.0   \n",
      "\n",
      "     Biography,Drama,History  Mystery,Romance,Thriller  ...  \\\n",
      "0                        0.0                       0.0  ...   \n",
      "1                        0.0                       0.0  ...   \n",
      "2                        0.0                       0.0  ...   \n",
      "3                        0.0                       0.0  ...   \n",
      "4                        0.0                       0.0  ...   \n",
      "..                       ...                       ...  ...   \n",
      "995                      0.0                       0.0  ...   \n",
      "996                      0.0                       0.0  ...   \n",
      "997                      0.0                       0.0  ...   \n",
      "998                      0.0                       0.0  ...   \n",
      "999                      0.0                       0.0  ...   \n",
      "\n",
      "     Action,Adventure,Mystery  Action,Adventure,Biography  \\\n",
      "0                         0.0                         0.0   \n",
      "1                         0.0                         0.0   \n",
      "2                         0.0                         0.0   \n",
      "3                         0.0                         0.0   \n",
      "4                         0.0                         0.0   \n",
      "..                        ...                         ...   \n",
      "995                       0.0                         0.0   \n",
      "996                       0.0                         0.0   \n",
      "997                       0.0                         0.0   \n",
      "998                       0.0                         0.0   \n",
      "999                       0.0                         0.0   \n",
      "\n",
      "     Adventure,Mystery,Sci-Fi  Comedy,Family  Drama,History,Thriller  \\\n",
      "0                         0.0            0.0                     0.0   \n",
      "1                         0.0            0.0                     0.0   \n",
      "2                         0.0            0.0                     0.0   \n",
      "3                         0.0            0.0                     0.0   \n",
      "4                         0.0            0.0                     0.0   \n",
      "..                        ...            ...                     ...   \n",
      "995                       0.0            0.0                     0.0   \n",
      "996                       0.0            0.0                     0.0   \n",
      "997                       0.0            0.0                     0.0   \n",
      "998                       0.0            0.0                     0.0   \n",
      "999                       0.0            0.0                     0.0   \n",
      "\n",
      "     Action,Adventure,Drama  Comedy,Drama,Fantasy  Action,Mystery,Sci-Fi  \\\n",
      "0                       0.0                   0.0                    0.0   \n",
      "1                       0.0                   0.0                    0.0   \n",
      "2                       0.0                   0.0                    0.0   \n",
      "3                       0.0                   0.0                    0.0   \n",
      "4                       0.0                   0.0                    0.0   \n",
      "..                      ...                   ...                    ...   \n",
      "995                     0.0                   0.0                    0.0   \n",
      "996                     0.0                   0.0                    0.0   \n",
      "997                     0.0                   0.0                    0.0   \n",
      "998                     0.0                   0.0                    0.0   \n",
      "999                     0.0                   0.0                    0.0   \n",
      "\n",
      "     Drama,Fantasy  Action,Comedy,Fantasy  \n",
      "0              0.0                    0.0  \n",
      "1              0.0                    0.0  \n",
      "2              0.0                    0.0  \n",
      "3              0.0                    0.0  \n",
      "4              0.0                    0.0  \n",
      "..             ...                    ...  \n",
      "995            0.0                    0.0  \n",
      "996            0.0                    0.0  \n",
      "997            0.0                    0.0  \n",
      "998            0.0                    0.0  \n",
      "999            0.0                    0.0  \n",
      "\n",
      "[1000 rows x 207 columns]\n",
      "----------------------------------------------------------------------------------------------------\n",
      "Animation,Action,Comedy     1.0\n",
      "Animation,Drama,Fantasy     1.0\n",
      "Action,Fantasy,Thriller     1.0\n",
      "Biography,Drama,Sport       8.0\n",
      "Action,Thriller             9.0\n",
      "                           ... \n",
      "Action,Adventure,Drama     18.0\n",
      "Comedy,Drama,Fantasy        2.0\n",
      "Action,Mystery,Sci-Fi       3.0\n",
      "Drama,Fantasy               2.0\n",
      "Action,Comedy,Fantasy       3.0\n",
      "Length: 207, dtype: float64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ],
      "image/png": "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ZMfv9rajsbFxu/svYusYVLpGuPTSS7Prjx0dY6UxbtiwYemII45IDQ0N2WuaUjuWzoX9r/N6L6f3MRER6cILL0zXX3991ufq6up22u6leo4bNy7Nnj07TZw4MRUKhTRq1KgdHjNDhgxJ+++//w6P81KbFIvFdPrpp6fVq1dn5+f+5UvHXml9vdu4UCikpqamNH78+DRr1qy0YMGCNHTo0Kzdamtr07XXXpvmz5/f55zUez2l8byioiJVVFRk7VvqP6W+srM26j0NGzYse/1/zDHHpLKysrTvvvum+vr6Ptuzzz77pAULFmT7YOTIkSkiUmtrayoUCunOO+/Mzv/V1dWprKws1dXVpc7OznTooYemiEjLly9PnZ2dqaqqKo0aNSobv0tj7c6uC0pTW1tbGj9+fDr22GNTQ0NDevjhh9Pdd9+djjjiiNTZ2ZllDZdddlk6//zzs2uGhoaG1NXVld73vvelrq6ulFJKixYtSitWrNhpPlXyjW98IxsrmpubU2VlZRo7dmyaMWNGev/73582bdo0oOUMxEc/+tHs/Dh58uT0N3/zNzssO3PmzHTzzTenrq6ubfKqkvnz56exY8emrq6u1NXVld785jen1atXpxNPPHFA9dkrdwhec801MXPmzPj2t78dGzZs2GW5G2+8MUaPHh233357/OpXv4q777473vSmN8Uf//jHrOySJUvi97//ffzud7/bbpn+67znnnvim9/8Zp/1nXLKKVFVVZWVv/fee+NjH/tYPPPMM7Fp06ZIKcXatWvjf/7P/xn19fWxZcuW2LJly3brvnTp0njve98bhx12WLzwwgsREbFhw4aYMmVKTJ8+PWbNmhXPPvtstLW1xdy5c+O5556Lgw46KL75zW9GT09P/MVf/EU8++yzcc0118Tjjz8eFRUVkVKKf/mXf4mmpqaoqKiI2267Le6999546KGH4gtf+EKf9c+ePTvGjBkTmzZtissvvzza2tpi5MiRceutt0ZERE1NTdTV1cXRRx8dJ510UrS2tsbMmTOjtrY2W8bMmTOjsrIyysrKYsOGDfGe97wnysrK4umnn87ao2TBggVRW1sbkydPjpqamvjwhz8cf/rTn+Kpp56KVatWxcUXXxwnn3xyvP3tb4//+I//iHe/+93btF1nZ2f2+8c+9rHYuHFjdHd3x/PPPx/19fUxYsSI7PEtW7bEvvvuGw0NDdm8mpqaGDt2bGzcuDGuvPLK+NOf/hTV1dVRXl4eKaU499xzY/LkyXH44YfHmjVrolAoRHt7e0RElJWVxT777BOtra0xZ86cmD17dixfvjzuvvvuOP3006O+vj7+7d/+LSIihg0bFqtXr47NmzfH97///Vi/fn28+OKLsXjx4jjppJOy+lRVVcXYsWOjqqoqCoVClJeXx4QJE+IjH/lI/NVf/VWUlZXFli1b4l//9V9j1qxZsXr16j7tUVdXFzU1NdHS0hIvvPBClJeXR0REd3d3zJ8/P+rq6qKtrS06OzvjM5/5TEREzJ8/P2pqamLBggVx5JFHRk9PTxxzzDFxzjnnRHd3dzQ3N8eRRx4ZHR0dMXz48GzbIyIKhUIUi1u/SPy73/1uNr/krrvuyn4vLy+PIUOGRH19fdTV1cWtt94ar3/96yMiolgsxpFHHpltwyGHHBLPPvts9PT0xE033RSXX355DB8+POrq6qKsrCyGDh2aLTMiorW1NWbNmpX1j+HDh8f+++8f5eXl0dzcHN/4xjdixIgR8cILL8RNN90UnZ2dMXny5Ghpacm24a1vfWtUV1dn/aOysjIiIhoaGmLt2rVRKBSirKws26bjjz8+Xnzxxawe5eXlUVZWFtOmTYvy8vIoFApRKBSy7W9paYmGhoZIKcX69euzPtna2hrNzc3Z/k8pZW36hz/8oU977rfffrHPPvtk7bR48eJobm7O2r2lpSXKy8vjO9/5TtTU1MTmzZsjIqK+vj5SSnHkkUdGsViMCy+8MIrFYva8t7zlLVFdXZ3Vt7m5Of793/89fve730VFRUUMGTIk5s+fHyeffHJs2bIljjnmmKiqqooVK1bEZZddFoVCIRobG2PZsmVRUVERxWIx2tvbo6mpKZqamvr070996lPR0tISPT09MWnSpKivr4+PfOQj8a53vStSStHY2BgbN26MX/3qV/H//t//i40bN0ZTU1M8/fTTMWHChPjhD38YPT098b//9/+OiIg5c+bE7373u6w9b7zxxqirq4vOzs4YMmRIn34yderUqK6uzurzlre8JTo7O6O5uTnKy8ujvb09fvGLX0RlZWVUVlbGPvvsE1VVVVFWVhbNzc1xww03RFlZWZSXl8djjz0Wv/vd7+LQQw+NiIjx48fHz3/+83jxxRezvtDS0hLV1dVx+OGHx5AhQ7I+sWLFilixYkVMnjw5IiKWL18eFRUVUVFRkfWFa6+9Nr761a/G8OHDo1gsxgMPPBANDQ1x9tlnx9///d9HSikbp0rb2fs4q62tjcrKyli3bl088sgj8da3vjVuvfXWWLZsWRx22GHx/PPPxx133BH3339/RET80z/9U2zZsiVWrFgRKaWYPHlyfPjDH46DDz446ycvvPBCrFy5MiIiPv/5z8f06dPjda97XVRUVERbW1u84x3viLPOOivKy8ujsbExIraOPQ0NDTF69Og+43FNTU1UVVXFwQcfHG9+85v7bMP3vve9WLp0abZP16xZE6effnqMHDky6/9Dhw7N6tXe3h719fUxcuTIaG9vj56enoiI2LRpU1RVVUVlZWU0NjZGeXl5VFZWxrBhw+Kzn/1s1NfXx5IlS+Kuu+6KUaNGZet/4IEHIqUUKaUoKyuL73znO9k+XbFiRSxatCja2tqip6cnfvSjH0VbW1vU1dXFr3/96/j+97+f9Ydhw4bF0KFD4/Of/3x27isvL49hw4bFxIkTY/PmzVFZWRnvete7IiLiueeei+7u7thvv/3iM5/5TKxduzarU1lZWXR3d8cHPvCBOPDAA6NQKGTLbGxsjG9/+9tx+eWXZ31s06ZN8eMf/zgiIlJKsf/++8ctt9wSzzzzTDQ2Nsbdd98dH//4x7N91NLSEu9+97sjIuLyyy+PL37xi3HttddGoVCIX/7yl3H//ffH61//+vjZz34W1dXV8bd/+7dRX18fzz33XAwbNixaW1vjwAMPjLq6umzcKhQK0draGhs2bIiFCxfG6173uoiIOPPMM+PEE0+Mtra2bPuGDBkSQ4cOjfr6+oiIeOMb3xi/+c1vIiLine98Z/z0pz+NLVu2xAMPPBC1tbVRVlYWixYtimKxGG94wxuit4qKioiIuPHGG7Px+o1vfGNs2rQppk2bFimlmDt3btTU1MTGjRtj+vTpcf/998f1118f8+fPj4iIjRs3RsTW68Rp06bFiBEj4le/+lWMGDEiamtrY/369TFnzpzo6uqKiRMnZmNnSikqKyujpaUl6uvr4wMf+EDU1dVl++sTn/hEjBw5MhoaGqKuri6+8IUvxI9+9KM47bTT4p577okf/OAH0d3d3ac/NjY2Zo/V1dXFlClTIiLipz/9aaxfvz5+8pOfRH19fVx33XVxwAEHREopDj/88Bg1alR2nL3rXe+Kr3zlK33ap3d7lcbIadOmZeeCpqam6Onpieuuuy7Ky8tj06ZN2X5dunRpDBs2LF588cXo6OiIZcuWxdKlS+Mtb3lLdHd3R09PTzQ1NWXXh11dXTFixIiYMGFCNgb//Oc/j3PPPTdaW1tj8+bNcffdd8cJJ5wQBx54YNx1113ZeHHuuedGR0dH1r4RW8/xzz77bBQKhVi9enXce++98cQTT0R1dXW2fbW1tXH11VdHTU1N1mYRETNmzIhDDz00xowZExUVFTFx4sTsNUBpTJk1a1Zceuml8Xd/93fZvv3ABz4Q69ati6ampj7n99K12rx587Lxqfc5vrKyMmpqaqKhoSFrjwULFmTbN23atKxf19XVZfUsXYOU2u/hhx+O+fPnxy9/+cuoqKjIxt7jjjsuCoVCHHDAATF16tTYuHFj/O53v4spU6ZkdXv88cejsbExnnrqqXjyySezukVEbN68OYYNGxbNzc3R0tISEZFdw5Tasru7O7ve/tu//duoqamJcePGRaFQiIULF8aXv/zluO222+L3v/99tLe3xwUXXBBLly6Ngw8+OLq6umLp0qWxcOHC6O7ujpRSHHLIIRERsWjRojjooINi7Nix0djYGJWVlbHvvvtGxNYxYcuWLfGGN7whCoVCdr583/vel7VNZWVlbNiwIY488sg4/vjjs7qXl5fHIYccku3Pr3zlK9HZ2RllZWVx3XXXxUUXXRQ9PT3R2NgY48ePj6lTp8ZXv/rVWLNmTVx11VXR1dUVjzzySHR1dcWXvvSlOPDAA+Piiy+OysrKrN1e//rXx9NPP52dG8rKymL//fePL3/5y1l/KTn00EP7HHednZ2xZcuWGDlyZFRXV2f9ttTGbW1tMXTo0CgUCvH8889n21EsFuOPf/xj/NM//VN2Dbd69epYtWpVvP71r48f/vCH2fVKoVCIv//7v8/G1JqamtiyZUuUl5fHKaecEl/72teipaUlnnrqqawtR40aFXfeeWfMnDkzTjrppOjp6Yl777033vrWt8bcuXOjra0tzjvvvGhtbY2Irdeh69evj/e85z19rvWqq6tjxIgR2XpuuOGGaGtriyuvvDIOO+yw7Nq5dCynlGLo0KHR1NQU5eXl0dPTE88++2w8++yz8frXvz7GjRsXf/jDH7LXQSeddFJcdNFFcdFFF8X06dOz47CkvLw8KioqoqysLHp6emLUqFHxq1/9Kv7hH/4h6uvro6ysLB599NF43etelz2vdP0csfVataqqKo4++ujo6OiI1atXx/e///3o7OyMiy66KIYPH569DqmsrIyLL744PvzhD0dKKX75y19Gb+Xl5bF48eI444wzIqUULS0t0d3dHddcc02f8bCsrCzOPvvsbF+X+nvp9fwzzzwTEVuvdxYuXBiXXXZZ3HTTTXHNNdfEfffdF2PHjo33vve9cfLJJ8eGDRvihBNOiDFjxsTIkSPj7W9/e1bX0rXWqlWrYujQoXHqqadGd3d3jBs3LiZNmpS154IFC2LChAkxfPjwmDhxYkRsHYv33XffPq8Xhg4dGsViMerr6+N973tfDB8+PH7wgx9EZWVlPPTQQ9mYfcghh8SQIUPiL//yL+P222/PtumMM86IiIhnnnkmJkyYEN///vdjxIgR0djYGN3d3XHMMcfE//k//yc2btyYjY/r1q3LrjOmTp0a9957b/zsZz+LF154IRoaGuKcc86J3/zmN1FbWxuFQiFGjRoVRx11VLbtNTU1MXv27JgyZUqceuqp8eyzz8Zdd90V99xzT/zoRz+KlFJs2bIlNm3aFGeffXacddZZUV9fHx/72Mfi8MMPj3vuuSeOPfbYPvu59HprV376059mdTj++ONj5cqV8Yc//CFuv/32mDBhQnbtsT3d3d0DWkdExHXXXRc//OEPs/Pjr371qzj55JN3+bx77rknGzO259Of/nTcc8892TXJrFmz4pprrhlYpQYUG+7CnDlz0ve///107LHHpi9/+csppZRWrFiR3vjGN6a/+qu/StOmTUszZ85MBxxwQPrSl76UysrK0siRI1NKKV1yySWpvLw87bffflkCXroLrPTf1F/+8pfZf+dL6Xj8V4Le+26p8vLy7D8TpTK9k/dhw4bt8L9Zu5O072ra1X+UTCaTyWQymUwmk8lkMpnyMO3NvOXlnIYPH56966H0zqPSO7YqKyv7vNugdOd9R0dHlkEVi8XsLtZCoZDa29vT+973vvSLX/wijRs3LtXV1aW6uro0atSoNG3atPShD30oXXDBBenEE0/M3nFQunt/woQJ6eabb04RW+8anT59ejr44IPTc889lw455JD0/ve/P9XX16dx48alww47LN1zzz0ppZTdVTgQe3yH4K9//et49NFHY8GCBbFkyZLsv5wREatXr47ly5fHL3/5y5gxY0b89re/jbq6umhpacnS9IiInp6eeM973hPf/va3Y8iQIfHUU0/F+PHj4/DDD4/y8vL46Ec/GhFb09czzjgjxo0bF+Xl5bFx48bo6OiI5ubm7O6eurq6OPHEE+OTn/xkRGz9T07pv2mlu5dK/2XoffdcfX19VFVVZXf/9L4jIiKyO0MiYps7rSIi++/93lKq7/b0n997O0rPBQBgYHrf9bW9v0t3HPPn1X8/9DaYrnd3dM0O8Go00PH1iCOO2OFj06ZNe0nL3JGampo+72CYOnXqDstWVlbucH2lvCdi652i//qv/5r9PXbs2GhqasreVfbss8/GjTfemL0LdsKECX3u6j/ssMOy53Z2dmZ3nPf09ER3d3e0t7fHiSeeGP/0T/8UL7zwQtx8882RUora2tp4/vnn4y1veUvceeedcd9998Vtt90Wv/nNb+LLX/5ynHDCCXHcccfFAw88kNVv//33j0suuSR++MMfxq9//et45JFH4te//nXMmDEjUkqxbt26OPjgg+Mf/uEfdqtd9/js9ZWvfCVOOeWUKC8vj4ULF8bDDz8c//Ef/xERW29BHTduXEREPPXUU9nb52pqamLTpk1ZubKysjjrrLPiRz/6URx66KFRKBSirq4ujjvuuNi0aVP2tqny8vL4yU9+Eo8//ni2I+fPnx//+Z//Ga2trbFly5ZYuHBh3HjjjXHJJZdExNbbeXt6eqJQKERPT0/88Y9/zMK+3rd+/ulPf8re0hoR2a3bvR/fmS9+8YvZ76nXW29fqlGjRu2wE/d/a+5zzz2X/V5TU+OiBHjNGUwv/IDXntLb2UtKb8Mtue222/6c1XnNq6mpGVC5/vuht71xvb237OgjhwYbrxGAgRjo+PqjH/1oh4/9+te/7vN3//Ps9vTOX/p7/vnn44knnsj+vu+++3ZYtvQxCDt6rHedSh9rEBHx6KOPxkMPPRTXXXddVFVVxQknnBBHHXVUlhs99dRT2Ud7dXd3x+rVq6OzszP+8z//M5577rkoLy+P5557LgqFQqxfvz4WLVoUa9asif322y9+/etfx/nnnx/PPfdcPP300/HMM8/Epz71qbjlllviqaeeitbW1qiuro7TTz89DjnkkCgWizF+/Pi44447IiLiXe96V3zhC1+IxsbGuPzyy2PSpElx7733xs9//vOI2HqTWGNjY5x++uk7b+R+9uissHnz5rjqqqvi61//eowdOzYmTJgQzz//fJaaloK3zZs3x09+8pNYt25dLFu2LB5++OHYsmVLVq73yan0GVD3339/1pi9d1ppXuk5119/faSU4umnn46IrZ8t8Pzzz8fs2bMjImLu3LlRW1sbVVVV2cm6FKD1Xm5VVVXU1dVlnbC8vDwmTZqUPd67bP+TflVVVbz//e/vsw0vRe8XvH/84x8HfHFR+jyoiMgSadiVnQ24L1Xvz4CLePWGOH/Oevf/zKg9sbN69/5vWERknzn5avHn2Cd7ex0DWd7e3P+8/ErHUVlZ2at2fHs125vnrf77r/+daP0f3511vxzn18Fi7Nixe2U5zz///IDKDR8+fIfH2mA9BgdrvSL6voYRDrI7Buu4Nljrtbt2NW70v45/pfT+PNWIvu+i3NXrwNK+2tm2bC//6H1+7r3MkSNH9inXe0ybOXPmNp8X31+p/KpVq/rMa29vj3PPPTeef/75OPjgg7PP5o6IeNvb3hb33HNPREScd955UVdXF4899lj09PTE6aefHl/84hejUCjEQQcdFMViMWbNmhXd3d1RXl4eV111VTQ1NUVZWVn86U9/iuOPPz6WL18e1dXVMXny5G3uXOzu7u6zDcccc0zceeedMXny5Pja174WL7zwQpx66qkxa9as7DME161bt81+2JU9OhN873vfi/Hjx8djjz0Wa9asiTVr1sQdd9wRV111VZ8PcPze974XI0aMiEMOOSTWrl0bb3rTm6K6ujquvPLKrNz111+fffB7oVCIRYsWxUUXXZSFium/PkS8oqIitmzZEkcddVQUCoUYP358nHjiidlbkO+7774YP358PPjggxGx9T+LL774YmzZsmWbDtz77R+lD+4uddSNGzfGQw89lD3ee7DpP/Bs3LgxLr/88uzvl3oh0HvnPf/88ztMtUsf4FzSu63/+Mc/DuoLEQaPlyM47v+Bq4Ppv/e7489Z7725rp0tq//+Lv0TpWRnb8saDP4cd1/s7f0+kOUN9MOOGRxKx9Gr5W6gV6sdvcDbm+et/sfnrv7enXXvTtlXWyjT+106u6v0hQe74+mnn97hWDpYrzFeqXr1/wihiMEdTr7cBkuA8krbW2PMYL3h5LV6Pu5/7O7OF1e8nPp/geyzzz6b/d7/dWD/PlP6e2fbsr0xq3SneLFY7DO+rlu3rk+53jdJ9c9SetettI5S3+l9R111dXVs2LAh9ttvv4jY+mUjpS/riNj6pSBf//rXIyKyLw0aNmxY1NbWxv/9v/83qquro7m5OX7605/GrFmzoqysLNasWRMPPPBAPPfcc1EsFmPOnDnxN3/zN3HTTTfFE088EZs2bYpCoRD77rtvvPDCC9ny165dGw8++GDMnTs3Irbe1Pa+970vNmzYEH/9138dF198cVx99dXZtm3ZsqXPl4YO2J58mcib3/zm9LnPfW6b+QcccED61Kc+lY477ris3Jlnnpnmz5+fUkrppptuSm1tbamqqio1NzeniEhnnnlmevrpp9Pxxx+fCoVCmjp1aho3blyqqKhIVVVVqbGxMZWVlaWGhoZUV1eXfWjj5MmT0zPPPJPq6+tToVBIFRUVqaGhIfva8dJXc/f+MpL4rw+BrK+vz5ZTeu6OvhCk9/xdfR26yWQy7a3JlxSZTCaTyWQymUymiFfPl3P8uacjjjjiJbVZZWVl9nuhUEhDhgxJVVVV2WuwsrKytM8++6SI6JMXlb4ot66uLh1//PHp0EMPTZ2dnWnIkCEpItK5556brrrqqtTZ2ZkmTJiQLr744jRmzJg0ZMiQVCwWU1lZWSoWi2nixInprLPOSuedd1665JJLUnV1dSoWi6mqqipNnDgx+1KRyZMnp/322y9FRLrzzjtTSil94xvfSHV1dWnMmDFp3333Te9///tTSrv3pSJ75VuGX0tWr16dJk6cmHp6etKTTz6ZjjjiiOzn9sqklNKTTz6ZXve61/UpszPXXnttuvDCC3f4+KpVq9KSJUu2mb9p06b0wgsvpGuvvTZNmjQpzZo1K33zm9/MHp83b166+eab07HHHpuWLFnSp56l3x9//PF0xBFHpOrq6nT++een2bNnpyVLlqRVq1alKVOmpFtvvXW7dTruuOPSww8/nFJK6Vvf+lY6/PDDU1dXV7rlllv61HnBggUpItIjjzySRo0alR566KHsOfvss0/q7OxM++yzT9Z2KaV0ww03pLa2tjRixIi0fv36bdY9d+7cNG3atHT55ZenqqqqNH369HTFFVekY489Nr397W9Ps2fPTp2dnVn9Svvr6KOPTldeeWW2nO7u7tTS0pJ+8pOfpO7u7tTV1ZWuuOKKPm29evXq1N7eng466KD0sY99LL3vfe9LM2bMSNXV1WnmzJl99nlpf5fa9s477+zTd974xjemrq6uVF9f32d73/Wud6WysrLU2traZ3tLbfzJT34yNTU1Zc8ptW3vdj/zzDNTU1NTuvnmm1N1dXWqqqpK3/ve99JBBx2U1WHevHlp/fr16eCDD06VlZWpp6cn60PnnHNO+vznP5+am5vT0KFD08c//vF0+umnZ9szYcKEPvs3pa39dtSoUemQQw5JGzZsSOXl5am2tjY9+OCDqbu7O82aNSvNnTs33Xzzzdvtv6V90NXVlc4666xUXV2d3vve96bXv/71adSoUelrX/taamxszI6N1atXpyFDhqSbb745TZw4MT399NOpoqIivfe9703nn39+1v6ve93r0tixY/u0cf9jdkfHXGn+hg0b+vTXJ554IpWVlaU5c+akj370o2nixInpjjvuSK2tremd73xn+tSnPpV9U/q8efOyf3aUlnPooYemd77zneniiy9OV111VbYvSo/PnDkzrV+/Ptvn8+bNSwsWLOjTX1NK6ZxzztnhMZlSShdffHGaMWNGn+e9+93vTiNHjky33npr+trXvpbKy8vTM888k+bPn5++853vpL/+679Os2bNysqX+ld3d3eaOHFiOvroo7c7Hlx44YVZH/nMZz6TjjrqqGw/9R4Pr7322j77p78LLrggnXfeedk62traUllZWfrc5z6Xurq60kc/+tF04YUX9jl+S/32jDPOSNXV1WncuHHbjH39x45Vq1alY489No0ePTqrd0opNTU1pY6Ojj7j7JNPPpmNhSmltHDhwnT22Wf3Wd7q1avTiBEj0hve8Ia0YcOG1NzcnBYtWpRWrVqVTjnllDRv3rw0adKkNG3atPS9732vz/K2t9+uuuqqbBvHjBmT7rrrrjRx4sQ0ZsyYPu1e6iO33357Gj58ePrXf/3XlFJKa9euTfX19amioiKNHj06pZRSRKSnn366zz4ttWlbW1s65ZRTUnd3d2poaEhve9vbUnt7e9ZupfWcc845feo/b9681NbW1uf46n28LF++PM2cOTN961vfSg0NDemAAw5IPT0925zH+v89d+7crGxvn/jEJ1JNTU12LF5yySVp5syZqba2Nqvr4sWLU11dXTr66KPTFVdckVLaOrY0NzenlpaWPstraGhIo0ePTsViMT3wwAPZ/j7iiCP69JtSv+y9v4cOHZo+8pGPpHnz5qURI0akhx56KB100EFp4cKFWZ966KGHUkVFRWppaUkPPfRQmjdvXnr66afT/vvvn8rLy7N1ppTSuHHj0nvf+940a9as1NPTk7773e+msrKy9G//9m+pq6srrVq1Kv3VX/1VGjZsWPrwhz+c5s2bl3784x/3Ob5SSun0009P48ePT+eee2762Mc+llLqO8aVfv/Wt76V3vCGN2T94IYbbkitra3pxBNP7LPPt3f87MyNN96Yqqur08qVK1NdXV1auHBhuuGGG7IxcUfLLdXna1/7Wurs7Mz6w46uefrrP9asXr06jR8/Ps2ePTu9/e1v3+Z67Vvf+laaNWvWNutZtWpVOv3007c5x5Xq/t3vfrfPerq7u9PUqVPTsGHD0m9/+9v0wgsvpJRSmjNnTpozZ06fsWh7SuubNWtWmj59ejrllFPS0UcfnYrFYrrtttuy82dPT0/2+ze/+c104YUXpnPPPTd95CMfyeq6atWqNGvWrFRfX5+qqqqy654dteOiRYuyMX0gbbxgwYI0duzYNG3atNTQ0JCWLVuWTjjhhDR58uQ+11nLly9PBx54YJ/n9t/fpW3ZtGlTVv/u7u7U0dGRvv71r/e5rkwpZeNhab+NHj067bvvvukf//Ef07HHHptOOumkVFdXl+2zUn8499xz0/z589OqVavS4sWL9/havLu7O9XV1aVnnnkmHXnkkamysjItXbp0u+fib37zm2nkyJHpq1/9apo4cWJ64YUX0rx589K6devSvHnzsr6xatWq9IY3vCFbX//r05T++3y/atWqVFdXl+6+++4+7XnaaaelcePG9Rmbe19HlJSuFTs6OtJf//Vfp5RSmjJlSmppadmmz5eueQ8//PBsfz3++OPpoIMOyvpLabz/whe+kM4666zs3FJZWZm6urrSJZdckvbdd9906623ZsffKaeckkaPHp16enp2+pqn97mk93HQX//r4pRSOuigg9Lhhx+e/X3xxRenL3/5y2n48OFp2bJl2fLLyspSTU1NuuOOO9KSJUvS0UcfncaNG5dqamrShz/84WxflF5bXXnlldtce5W2YdWqVamxsTHts88+6cUXX8zGgg0bNmT7u/c5rHTcXXvttenss89OEyZMSM8991x23TB27Ng0fPjw1NzcnO6+++7U3d2d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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 16
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
